--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
vendor/rns_filesync/docker/README.md f89f91e267d8079e6dec86fa9d3139ddbe7f64ce (f89f91e2) Text, 1.89 KB
Docker images for RNS FileSync
Rootless multi-stage runtime and a separate wheel builder.
Runtime image (rootless)
Build:
T282828
docker build -f docker/Dockerfile -t rns-filesync:1.0.0 .
Prepare host dirs owned by uid 1000:
T282828
mkdir -p ./fs-config ./fs-data ./fs-reticulum
Put FileSync config under ./fs-config (config file named config),
Reticulum config under ./fs-reticulum, and the sync tree under ./fs-data.
Run (rootless-friendly, drop capabilities):
T282828
docker run --rm -d Tffea00\
--name rns-filesync Tffea00\
--userTff7b72=T79c0ff1000:1000 Tffea00\
--read-only Tffea00\
--tmpfs /tmp:rw,sizeTff7b72=64m Tffea00\
--security-opt no-new-privileges Tffea00\
--cap-drop ALL Tffea00\
-v Ta5d6ff"Te6edf3$PWDTa5d6ff/fs-config:/config:rwTa5d6ff" Tffea00\
-v Ta5d6ff"Te6edf3$PWDTa5d6ff/fs-data:/data:rwTa5d6ff" Tffea00\
-v Ta5d6ff"Te6edf3$PWDTa5d6ff/fs-reticulum:/reticulum:rwTa5d6ff" Tffea00\
rns-filesync:1.0.0
Override peers or flags:
T282828
docker run --rm --userTff7b72=T79c0ff1000:1000 Tffea00\
-v Ta5d6ff"Te6edf3$PWDTa5d6ff/fs-config:/configTa5d6ff" Tffea00\
-v Ta5d6ff"Te6edf3$PWDTa5d6ff/fs-data:/dataTa5d6ff" Tffea00\
-v Ta5d6ff"Te6edf3$PWDTa5d6ff/fs-reticulum:/reticulumTa5d6ff" Tffea00\
rns-filesync:1.0.0 Tffea00\
--config /config --rnsconfig /reticulum -d /data --no-repl -p PEER_HASH
Check version:
T282828
docker run --rm rns-filesync:1.0.0 -v
Wheel builder
Build wheels inside the image and copy them out:
T282828
mkdir -p dist
docker build -f docker/Dockerfile.build -t rns-filesync-build .
docker run --rm -v Ta5d6ff"Te6edf3$PWDTa5d6ff/dist:/outputTa5d6ff" rns-filesync-build Tffea00\
sh -c Ta5d6ff'cp -a /output/. /output/ 2>/dev/null; ls -la /output'
If the image already wrote wheels under /output during build, extract with:
T282828
Te6edf3cidTff7b72=Tff7b72$(docker create rns-filesync-buildTff7b72)
docker cp Ta5d6ff"Te6edf3$cidTa5d6ff":/output/. ./dist/
docker rm Ta5d6ff"Te6edf3$cidTa5d6ff"
Install a built wheel:
T282828
pipx install dist/rns_filesync-*.whl
Notes
• The runtime user is filesync (uid 1000). Match host volume ownership.
• Network is required for Reticulum interfaces you enable in /reticulum/config.
• Prefer --no-repl for containers and service managers.
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────